{
  "documentationUrl": "https://docs.airbyte.io/integrations/sources/{{snakeCase name}}",
  "connectionSpecification": {
    "$schema": "http://json-schema.org/draft-07/schema#",
    "title": "{{pascalCase name}} Source Spec",
    "type": "object",
    "required": ["host", "port", "database", "username", "replication_method"],
    "additionalProperties": false,
    "properties": {
      "host": {
        "description": "Hostname of the database.",
        "type": "string",
        "order": 0
      },
      "port": {
        "description": "Port of the database.",
        "type": "integer",
        "minimum": 0,
        "maximum": 65536,
        "default": 3306,
        "examples": ["3306"],
        "order": 1
      },
      "database": {
        "description": "Name of the database.",
        "type": "string",
        "order": 2
      },
      "username": {
        "description": "Username to use to access the database.",
        "type": "string",
        "order": 3
      },
      "password": {
        "description": "Password associated with the username.",
        "type": "string",
        "airbyte_secret": true,
        "order": 4
      },
      "jdbc_url_params": {
        "description": "Additional properties to pass to the JDBC URL string when connecting to the database formatted as 'key=value' pairs separated by the symbol '&'. (example: key1=value1&key2=value2&key3=value3)",
        "type": "string",
        "order": 5
      },
      "replication_method": {
        "type": "string",
        "title": "Replication Method",
        "description": "Replication method to use for extracting data from the database. STANDARD replication requires no setup on the DB side but will not be able to represent deletions incrementally. CDC uses the Binlog to detect inserts, updates, and deletes. This needs to be configured on the source database itself.",
        "order": 6,
        "default": "STANDARD",
        "enum": ["STANDARD", "CDC"]
      }
    }
  }
}
